package br.com.smart.logistica.services;

import java.util.ArrayList;

import br.com.logistica.base.BaseException;
import br.com.logistica.database.ConhecimentoDAO;
import br.com.logistica.database.ProdutoDAO;
import br.com.logistica.util.dto.ServiceDTO;
import br.com.logistica.vo.Conhecimento;
import br.com.logistica.vo.Produto;

public class ConhecimentoSCN {
	
	public static ServiceDTO pesquisar()throws BaseException{
		 ServiceDTO response = new ServiceDTO( ) ;
	     ConhecimentoDAO dao=new ConhecimentoDAO();
	     response = dao.retrieve( ) ;
	     ArrayList<br.com.logistica.persistence.entidades.Conhecimento> conhecimentos=
	    		 (ArrayList<br.com.logistica.persistence.entidades.Conhecimento>)response.get("conhecimento");
	     if ( conhecimentos != null && conhecimentos.size()>0)
	     {
	            response.set("resposta", new Boolean(true));
	            return response;
	     }
	     response.set("resposta",new Boolean(false));
	     return response;
	}
	
	public static ServiceDTO pesquisar( ServiceDTO requestDTO ) throws BaseException
    {
        ServiceDTO responseDTO = new ServiceDTO( ) ;
        
        if ( requestDTO != null )
        {
            ConhecimentoDAO dao = new ConhecimentoDAO();
            responseDTO = dao.create(requestDTO) ;
            Conhecimento conhVO = (Conhecimento)responseDTO.get("conhecimento") ;
            if ( conhVO != null )
            {
                responseDTO.set( "resposta", new Boolean( true ) ) ;
                return responseDTO ;
            }
            responseDTO.set( "resposta", new Boolean( false ) ) ;
            return responseDTO ;
        }
        responseDTO.set( "resposta", new Boolean( false ) ) ;
        return responseDTO ;
    }
	
	public static ServiceDTO inserir( ServiceDTO requestDTO ) throws BaseException
    {
        ServiceDTO responseDTO = new ServiceDTO( ) ;
        if ( requestDTO != null )
        {
            ConhecimentoDAO dao = new ConhecimentoDAO();
            ServiceDTO conhe = dao.retrieve(requestDTO);
            if (((br.com.logistica.persistence.entidades.Conhecimento)conhe.get("conhecimento"))==null)
            {
                responseDTO = dao.create(requestDTO) ;
                responseDTO.set("operacao","persistencia") ;
            }
            else
            {
                responseDTO = dao.update( requestDTO ) ;
                responseDTO.set( "operacao", "alteracao" ) ;
            }
            responseDTO.set( "resposta", new Boolean( true ) ) ;
            return responseDTO ;
        }
        responseDTO.set( "resposta", new Boolean( false ) ) ;
        return responseDTO ;
    }
	
	public static ServiceDTO deletar(ServiceDTO request)throws BaseException{
		ServiceDTO responseDTO = new ServiceDTO( ) ;
        if ( request != null )
        {
            ConhecimentoDAO dao = new ConhecimentoDAO( ) ;
            responseDTO = dao.retrieve(request) ;
            Conhecimento conhConsultado = (Conhecimento)responseDTO.get( "conhecimento" ) ;
            if ( conhConsultado == null )
            {
            	responseDTO.clearAttributes();
            	responseDTO.set("resposta","sem Conhecimento");
            }
            else{
            	responseDTO = dao.delete(request) ;
            	responseDTO.set("resposta", new Boolean( true ) ) ;
            	return responseDTO ;
            }
        }
        responseDTO.set("resposta", new Boolean( false ) ) ;
        return responseDTO ;
	}

}
